#ifndef _BACUT

#define _BACUT 1

typedef struct{
  /* programme lineaire de LPSOLVE */
  lprec *lp;

  /* Variable pour contruire le programme lineaire */
  double *vect;
  int    *colno;
 
  /* Variables pour la résolution du programme lineaire */
  double *x; /* Vecteur de solution */
  double  lb; /* borne inferieure */

  /* Branchement */
  int *bd; /* -1 -> variable libre ; 0 -> variable fixee a 0 ; 1 -> variable fixee a 1 */

  /* Meilleure solution */
  double best_length;

  /* Compteurs */
  int nbnodes;

  /* Variables pour les fonctions de concorde */
  int    ecount;
  int   *elist;
  int    ncomp;
  int   *compscount;
  int   *comps;

  /* coupe */
  int *s;

  /* Recherche de coupe minimale dans concorde */
  double *dlen;
  double cutval;
  int cutcount;
  int *cut;
} BACUT;

void bacut_init(TSP_DATA *, BACUT *);
void bacut_free(BACUT *);

void bacut_run(TSP_DATA *, BACUT *);

#endif
